As the number of Internet users grows and as Internet connection speeds continue to increase, there are increasingly more Internet services available “in the cloud.” For example, video transcoding and distribution, file storage, speech recognition, and applications such as email and other productivity tools now often utilize networks of computers (e.g., server clusters) to perform functions remotely in addition or alternative to performing those functions on an end-user device.
Efficient execution of tasks among networked computers requires load balancing to distribute tasks to the computers able to perform those tasks in a manner that helps maximize processing resources. Although advances have been made in load balancing, there is still room for improvement.